﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for Ruby
/// </summary>
/// 

namespace Bestlife.ERP.BusinessRules
{
    public class Ruby:System.Web.UI.Page
    {
        Double direect_commision ;
        String user_status;
        String Parent_Ststus;
        Double indireect_commision;
        Double Totalbv;
        Double TotalCommitions;
        Double bv;
        Double Parentinderect;
        String Current_user;



        public Ruby()
        {
            //
            // TODO: Add constructor logic here
            //
        }


        public void Rubys(String id, Double product_bv, Double product_pv, Double ts, String user_status)
        {
            Bestlife.ERP.DataAccess.D_bonus bns = new DataAccess.D_bonus();//(Add by chathuranga)
            Bestlife.ERP.Entities.E_Bonus ebns1 = new Entities.E_Bonus();//(Add by chathuranga)
            Bestlife.ERP.Entities.E_Bonus ebns2 = new Entities.E_Bonus();//(Add by chathuranga)
            Totalbv = product_bv;
            bv = product_bv;


            try
            {
                ebns1 = bns.Getbonus(id);//get user(child) totalcommition(Edit by chathuranga - Saturday, June 16, 2012 at 2:08:04 PM )
                double T_commitioninDB = double.Parse(ebns1.T_commision.ToString());

                DataAccess.parents p1 = new DataAccess.parents();

                string parent = p1.parent(id);// add parent id (Edit by chathuranga 22-06-2012)
                ebns2 = bns.Getbonus(parent);// add parent id (Edit by chathuranga 22-06-2012)
                double parent_tot_commition = double.Parse(ebns2.T_commision.ToString());
                //double ptpv_month=double.Parse(ebns2.Tppv_month.ToString())+product_pv;
                //double ptbv_month=double.Parse(ebns2.Tbv_month.ToString())+bv;
                //double pcpv=double.Parse(ebns2.Cpv.ToString())+product_pv;


                Parent_Ststus = (Parent_Ststus = p1.ParentDetails(id));// get parent status
                //total sales  direct commition for 10 presenter
                direect_commision = ((product_bv * 24) / 100);//(UPDATED BY PIUMI)

                if (Parent_Ststus != null)
                {
                    int parent_St = int.Parse(Parent_Ststus);
                    int child_St = int.Parse(user_status);

                   
                    Parentinderect = indireect_commision + parent_tot_commition;
                    TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user

                    if (child_St>parent_St) 
                    {
                        Current_user = Session["user"].ToString();
                        Bestlife.ERP.DataAccess.D_child ch = new DataAccess.D_child();
                        DataAccess.users crnt = new DataAccess.users();
                        String CrntID = crnt.GetUserId(Current_user);

                        p1.UpdateParenttpvmonth(parent, product_bv, product_pv, user_status);//update parent tppv month and tbvmonth add by chathuranga 04-08-2012


                        if ((id == CrntID))
                        {

                            Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 

                        }

                        DataAccess.users usr = new DataAccess.users();
                        usr.users_level(parent, product_bv, product_pv, ts);


                    }
                    else if (user_status.Equals("6") && Parent_Ststus.Equals("6"))    //  Ruby and Ruby
                    {

                        #region Ruby n Ruby


                     
                        Parentinderect = indireect_commision + parent_tot_commition;
                        TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user

                        Current_user = Session["user"].ToString();
                        Bestlife.ERP.DataAccess.D_child ch = new DataAccess.D_child();
                        DataAccess.users crnt = new DataAccess.users();
                        String CrntID = crnt.GetUserId(Current_user);

                        p1.UpdateParenttpvmonth(parent, product_bv, product_pv, user_status);//update parent tppv month and tbvmonth 

                        if ((id == CrntID))
                        {

                            Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 

                        }

                        
                        DataAccess.users usr = new DataAccess.users();
                        usr.users_level(parent, product_bv, product_pv, ts);

                        #endregion

                    }

                    else if (user_status.Equals("6") && Parent_Ststus.Equals("7"))   //  Ruby and Diamond
                    {


                        //total sales  direct commition for 5 presenter
                        indireect_commision = ((Totalbv * 4.0) / 100);// inderirect commision 
                        Parentinderect = indireect_commision + parent_tot_commition;
                        TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user

                        // TotalCommitions = direect_commision + indireect_commision;//(Edit By chathuranga - Saturday, June 16, 2012 at 2:08:04 PM )

                        // update parent bv and cpv
                        DataAccess.parents pr = new DataAccess.parents();
                        Bestlife.ERP.DataAccess.D_child ch = new DataAccess.D_child();//add child class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                        Boolean updated = pr.UpdateParent(id, bv, Parentinderect, product_pv, user_status, indireect_commision);//update parent TotalCommition --> inderect_commition class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                        // Get Current user Id
                        Current_user = Session["user"].ToString();

                        DataAccess.users crnt = new DataAccess.users();
                        String CrntID = crnt.GetUserId(Current_user);

                        if ((id == CrntID))
                        {

                            Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 

                        }

                        // Update user commisions + update parent cpv+ user pv
                        // Sales.Totalsales(user_id,TotalCommisions);  

                        DataAccess.users usr = new DataAccess.users();
                        usr.users_level(parent, product_bv, product_pv, ts);


                    }

                    else if (user_status.Equals("6") && Parent_Ststus.Equals("8"))   //  Ruby and S.Diamond
                    {


                        //total sales  direct commition for 5 presenter
                        indireect_commision = ((Totalbv * 8.0) / 100);// inderirect commision 

                        Parentinderect = indireect_commision + parent_tot_commition;
                        TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user

                        // TotalCommitions = direect_commision + indireect_commision;//(Edit By chathuranga - Saturday, June 16, 2012 at 2:08:04 PM )

                        // update parent bv and cpv
                        DataAccess.parents pr = new DataAccess.parents();
                        Bestlife.ERP.DataAccess.D_child ch = new DataAccess.D_child();//add child class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                        Boolean updated = pr.UpdateParent(id, bv, Parentinderect, product_pv, user_status, indireect_commision);//update parent TotalCommition --> inderect_commition class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                        // Get Current user Id
                        Current_user = Session["user"].ToString();

                        DataAccess.users crnt = new DataAccess.users();
                        String CrntID = crnt.GetUserId(Current_user);

                        if ((id == CrntID))
                        {

                            Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 

                        }

                        // Update user commisions + update parent cpv+ user pv
                        // Sales.Totalsales(user_id,TotalCommisions);  

                        DataAccess.users usr = new DataAccess.users();
                        usr.users_level(parent, product_bv, product_pv, ts);



                    }
                    else if (user_status.Equals("6") && Parent_Ststus.Equals("9"))   //  Ruby and S.E.Diamond
                    {


                        //total sales  direct commition for 5 presenter
                        indireect_commision = ((Totalbv * 12.0) / 100);// inderirect commision 

                        Parentinderect = indireect_commision + parent_tot_commition;
                        TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user

                        // TotalCommitions = direect_commision + indireect_commision;//(Edit By chathuranga - Saturday, June 16, 2012 at 2:08:04 PM )

                        // update parent bv and cpv
                        DataAccess.parents pr = new DataAccess.parents();
                        Bestlife.ERP.DataAccess.D_child ch = new DataAccess.D_child();//add child class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                        Boolean updated = pr.UpdateParent(id, bv, Parentinderect, product_pv, user_status, indireect_commision);//update parent TotalCommition --> inderect_commition class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                        // Get Current user Id
                        Current_user = Session["user"].ToString();

                        DataAccess.users crnt = new DataAccess.users();
                        String CrntID = crnt.GetUserId(Current_user);

                        if ((id == CrntID))
                        {

                            Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 

                        }

                        // Update user commisions + update parent cpv+ user pv
                        // Sales.Totalsales(user_id,TotalCommisions);  

                        DataAccess.users usr = new DataAccess.users();
                        usr.users_level(parent, product_bv, product_pv, ts);



                    }
                    else if (user_status.Equals("6") && Parent_Ststus.Equals("10"))   //  Ruby and C.Diamond
                    {


                        //total sales  direct commition for 5 presenter
                        indireect_commision = ((Totalbv * 16.0) / 100);// inderirect commision 

                        Parentinderect = indireect_commision + parent_tot_commition;
                        TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user

                        // TotalCommitions = direect_commision + indireect_commision;//(Edit By chathuranga - Saturday, June 16, 2012 at 2:08:04 PM )

                        // update parent bv and cpv
                        DataAccess.parents pr = new DataAccess.parents();
                        Bestlife.ERP.DataAccess.D_child ch = new DataAccess.D_child();//add child class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                        Boolean updated = pr.UpdateParent(id, bv, Parentinderect, product_pv, user_status, indireect_commision);//update parent TotalCommition --> inderect_commition class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                        // Get Current user Id
                        Current_user = Session["user"].ToString();

                        DataAccess.users crnt = new DataAccess.users();
                        String CrntID = crnt.GetUserId(Current_user);

                        if ((id == CrntID))
                        {

                            Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 

                        }

                        // Update user commisions + update parent cpv+ user pv
                        // Sales.Totalsales(user_id,TotalCommisions);  

                        DataAccess.users usr = new DataAccess.users();
                        usr.users_level(parent, product_bv, product_pv, ts);



                    }
                }else if (user_status.Equals("6") && (id.Equals("1")))
                {

                    Current_user = Session["user"].ToString();
                    DataAccess.users crnt = new DataAccess.users();
                    String CrntID = crnt.GetUserId(Current_user);
                    if ((id == CrntID))
                    {

                        TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user
                        DataAccess.D_child ch = new DataAccess.D_child();
                        Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 
                    }

                }

            }


            catch (Exception err)
            {

                Response.Redirect("404.aspx?Massage=" + err.Message.ToString());
            }
        }
    }
}


